package thread.day3;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 实现多线程的第四种方法:线程池
 * 好处:
 * 提高响应速度(减少了创建时间)
 * 降低资源消耗(重复利用)
 * 便于线程的管理(核心池大小,最大线程数,会话终止时长等...)
 *
 * @author wx
 * @create 2019-11-29 15:05
 */
public class ThreadPoolDemo {
    public static void main(String[] args) {
//        Executors.newCachedThreadPool();//可根据需要创建新线程的线程池
        ExecutorService service = Executors.newFixedThreadPool(10);//指定线程数量的线程池
//        Executors.newSingleThreadExecutor();//单一线程池,只有一个线程的线程池
//        Executors.newScheduledThreadPool(10);//调度线程池,给定延迟后执行命令的线程池

        service.execute(new NumThread());//适用于Runnable
//        service.submit();//适用于Callable

        service.shutdown();//一定要shutdown,否则会一直运行
    }
}

class NumThread implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i%2 ==0){
                System.out.println("i = " + i);

            }
        }
    }
}
